/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ManagedBeans;

import Entidades.Categoria;
import Entidades.Producto;
import SessionBeans.ProductosDAO;
import Utilidades.Utilidades;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;

/**
 *
 * @author Joni
 */
@ManagedBean
@SessionScoped
public class mbProductosAdmin {

    @EJB
    private ProductosDAO productosDAO;
    private Producto selected;
    private int catID = 0;

    public mbProductosAdmin() {
    }

    public ProductosDAO getProductosDAO() {
        return productosDAO;
    }

    public List<Producto> getLista() {
        return productosDAO.getProductos(null);
    }

    public String editar(int id) {
        this.selected = productosDAO.getProducto(id);
        this.catID = this.selected.getCategoria().getId();
        return "/admin/productos/editar";
    }

    public String update() {
        this.selected.setCategoria(Utilidades.getCategoriasDAO().getCategoria(this.catID));
        productosDAO.actualizar(selected);
        return "/admin/productos/lista";
    }

    public String borrar(int id) {
        Producto c = productosDAO.getProducto(id);
        productosDAO.borrar(c);
        return "/admin/productos/lista";
    }

    public List<SelectItem> getItemsCategorias() {
        ArrayList<SelectItem> lista = new ArrayList<SelectItem>();
        for (Categoria c : Utilidades.getCategoriasDAO().getCategorias()) {
            lista.add(new SelectItem(c.getId(), c.getNombre()));
        }
        return lista;
    }

    public Producto getSelected() {
        return selected;
    }

    public void setSelected(Producto selected) {
        this.selected = selected;
    }

    public String prepararCrear() {
        this.selected = new Producto();
        this.catID = 0;
        return "/admin/productos/crear";
    }

    public String insertar() {
        this.selected.setId(null);
        this.selected.setCategoria(Utilidades.getCategoriasDAO().getCategoria(this.catID));
        this.selected.setImagen("./imagenes/iconos/inod.jpg");
        productosDAO.insertar(selected);
        return "/admin/productos/lista";
    }

    public int getCatID() {
        return catID;
    }

    public void setCatID(int catID) {
        this.catID = catID;
    }

    public void irCargar() {
        try {
            FacesContext.getCurrentInstance().getExternalContext().redirect("/Tienda_asalinero/faces/admin/productos/cargar.xhtml");
        } catch (Exception e) {
            System.err.println("Error en la redirección");
        }
    }
}
